#pragma once

#include <algorithm>
#include <arpa/inet.h>
#include <chrono>
#include <fcntl.h>
#include <functional>
#include <iostream>
#include <iterator>
#include <poll.h>
#include <queue>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <sys/unistd.h>
#include <thread>

namespace lslidar
{
    class UdpClient
    {
    public:
        UdpClient(){};
        ~UdpClient()
        {
            if (udp_socket_ > 0)
                close(udp_socket_);
        }
        int init(uint16_t msop_port);

        ssize_t readData(uint8_t *buf, ssize_t len);

    private:
        int udp_socket_;
    };
} // namespace lslidar
